package com.lyf.scm.common.enums;

import com.rome.arch.core.clientobject.Response;

public enum ResponseMsg {

    /**
     * 成功
     */
    SUCCESS("0", "操作成功"),
    /**
     * 失败
     */
    FAIL("SC_1001", "操作失败"),
    /**
     * 参数错误
     */
    PARAM_ERROR("SC_1002", "参数有误"),
    /**
     * 异常
     */
    EXCEPTION("SC_1003", "系统异常"),
    /**
     * 访问超时，请稍后重试
     */
    EXCEPTION_SC_1004("SC_1004", "访问超时，请稍后重试"),
    /**
     * 渠道信息填写错误
     */
    PARAM_ERROR_2001("PE_2001", "渠道信息填写错误"),
    /**
     * 销售组织填写错误
     */
    PARAM_ERROR_2002("PE_2002", "销售组织填写错误"),
    /**
     * 区域信息填写错误
     */
    PARAM_ERROR_2003("PE_2003", "区域信息填写错误"),
    /**
     * 品类信息填写错误
     */
    PARAM_ERROR_2005("PE_2005", "品类信息填写错误"),
    /**
     * 商品编码填写错误
     */
    PARAM_ERROR_2006("PE_2006", "商品编码填写错误，系统中不存在"),
    /**
     * 商品编码填写错误,必须为叫货商品
     */
    PARAM_ERROR_2007("PE_2007", "商品编码填写错误，必须为可叫货商品"),
    /**
     * 省份不能为空
     */
    PARAM_ERROR_2008("PE_2008", "省份不能为空"),
    /**
     * 省份为江苏省，城市不能为空
     */
    PARAM_ERROR_2009("PE_2009", "省份为江苏省，城市不能为空"),
    /**
     * 计划周期不能为空
     */
    PARAM_ERROR_2010("PE_2010", "计划周期不能为空"),
    /**
     * 最晚到货日期不能为空
     */
    PARAM_ERROR_2011("PE_2011", "商品数量或计划周期不能为空"),
    /**
     * 商品编码不能为空
     */
    PARAM_ERROR_2012("PE_2012", "商品编码不能为空"),
    /**
     * 商品数量不能为空
     */
    PARAM_ERROR_2013("PE_2013", "商品数量不能为空"),
    /**
     * 渠道编码不能为空
     */
    PARAM_ERROR_2014("PE_2014", "渠道编码不能为空"),
    /**
     * 确认量不能为空
     */
    PARAM_ERROR_2015("PE_2015", "未修改确认量或确认量为空"),
    /**
     * 商品类型编码不能为空
     */
    PARAM_ERROR_2016("PE_2016", "商品类型编码不能为空"),
    /**
     * 活动编码不能为空
     */
    PARAM_ERROR_2017("PE_2017", "活动编码不能为空"),
    /**
     * 所选区域信息与该角色的已有区域信息对不上
     */
    PARAM_ERROR_2018("PE_2018", "所选区域信息与该角色的已有区域信息对不上"),
    /**
     * 营销中心导入数据为空
     */
    PARAM_ERROR_2019("PE_2019", "营销中心导入数据为空"),
    /**
     * 营销中心导入数据为直营渠道，省份和城市不能为空
     */
    PARAM_ERROR_2020("PE_2020", "营销中心导入数据为直营渠道，省份名称和城市名称不能为空"),
    /**
     * 营销中心导入数据为加盟渠道，省份和城市不能为空
     */
    PARAM_ERROR_2021("PE_2021", "营销中心导入数据为加盟渠道，省份名称和城市名称不能为空"),
    /**
     * 系统中找不到对应的活动编码
     */
    PARAM_ERROR_2022("PE_2022", "系统中找不到对应的活动编码"),
    /**
     * 销售渠道不能为空
     */
    PARAM_ERROR_2023("PE_2023", "销售渠道不能为空"),
    /**
     * 物料编码不能为空
     */
    PARAM_ERROR_2024("PE_2024", "物料编码不能为空"),
    /**
     * 首单数量不能为空
     */
    PARAM_ERROR_2025("PE_2025", "数量不能为空"),
    /**
     * 单位不能为空
     */
    PARAM_ERROR_2026("PE_2026", "单位不能为空"),
    /**
     * 销售渠道为直营，门店编码不能为空
     */
    PARAM_ERROR_2027("PE_2027", "销售渠道为直营，省份不能为空或其它渠道不能填省份"),
    /**
     * 首单预计到货时间不能为空
     */
    PARAM_ERROR_2028("PE_2028", "首单预计到货时间不能为空"),
    /**
     * 要求到货时间不能为空
     */
    PARAM_ERROR_2029("PE_2029", "要求到货时间不能为空"),
    /**
     * 销售组织不能为空
     */
    PARAM_ERROR_2030("PE_2030", "销售组织不能为空"),
    /**
     * 日期格式填写错误
     */
    PARAM_ERROR_2031("PE_2031", "日期格式填写错误"),
    /**
     * 暂无该权限level
     */
    PARAM_ERROR_2033("PE_2032", "暂无该权限level"),
    /**
     * 销售计划已取消
     */
    PARAM_ERROR_2034("PE_2033", "销售计划已取消，已取消活动编码："),
    /**
     * 销售计划已同步，不能取消
     */
    PARAM_ERROR_2035("PE_2034", "销售计划已同步，不能取消，已同步活动编码："),
    /**
     * 获取文件路径失败
     */
    FAIL_2000("SC_2000", "获取文件路径失败"),
    /**
     * 下载模板失败
     */
    FAIL_2001("SC_2001", "下载模板失败"),
    /**
     * 上传文件与导入类型不一致
     */
    FAIL_2002("SC_2002", "上传文件与导入类型不一致"),
    /**
     * 单次导入数据不能超过10000条
     */
    FAIL_2003("SC_2003", "单次导入数据不能超过10000条"),
    /**
     * 暂无权限，请联系管理员
     */
    FAIL_2004("SC_2004", "暂无权限，请联系管理员"),
    /**
     * 无数据可导出
     */
    FAIL_2005("SC_2005", "无数据可导出"),
    /**
     * BPM同步新品铺货计划为空
     */
    FAIL_2006("SC_2006", "BPM同步新品铺货计划为空"),
    /**
     * 渠道名称为空
     */
    FAIL_2007("SC_2007", "渠道名称为空"),
    /**
     * 仓库编码为空
     */
    FAIL_2008("SC_2008", "仓库编码为空"),
    /**
     * 直营渠道必须传.xlsx或.xls附件
     */
    FAIL_2009("SC_2009", "直营渠道必须传.xlsx或.xls附件"),
    /**
     * excel附件读取失败
     */
    FAIL_2010("FAIL_2010", "excel附件读取失败"),
    /**
     * BPM同步新开店计划为空
     */
    FAIL_2011("SC_2011", "BPM同步新开店计划为空"),
    /**
     * 门店编码为空
     */
    FAIL_2012("SC_2012", "门店编码为空"),
    /**
     * 门店信息获取失败
     */
    FAIL_2013("SC_2013", "门店信息获取失败"),
    /**
     * 查询权限不足，请联系管理员
     */
    FAIL_2014("SC_2014", "查询权限不足，请联系管理员"),
    /**
     * 销售渠道为直营、APP、经销中心、云商
     */
    FAIL_2015("SC_2015", "销售渠道为直营、加盟、APP、经销中心、云商"),
    /**
     * 最晚到货日期不能小于当前日期
     */
    FAIL_2016("SC_2016", "最晚到货日期不能小于当前日期"),
    /**
     * 要求到货日期不能小于当前日期
     */
    FAIL_2017("SC_2017", "要求到货日期不能小于当前日期"),
    /**
     * 首单预计到货时间不能小于当前日期
     */
    FAIL_2018("SC_2018", "首单预计到货时间不能小于当前日期"),
    /**
     * 新开店计划只能导入直营、加盟渠道
     */
    FAIL_2019("SC_2019", "新开店计划只能导入直营、加盟渠道"),
    /**
     * 导入失败
     */
    FAIL_2020("SC_2020", "导入失败"),
    /**
     * 定时修改销售计划状态失败
     */
    FAIL_2021("SC_2021", "定时修改销售计划状态失败"),
    /**
     * 商品转换比例获取失败
     */
    FAIL_2022("SC_2022", "商品转换比例获取失败，商品编码为："),
    /**
     * 计划周期格式错误
     */
    FAIL_2023("SC_2023", "计划周期格式错误，格式为：年/月/日-年/月/日"),
    /**
     * 必须为加盟门店
     */
    FAIL_2024("SC_2024", "门店编码必须为加盟门店编码"),
    /**
     * 所勾选数据已不存在，请刷新数据后重试
     */
    FAIL_2025("SC_2025", "所勾选数据已不存在，请刷新数据后重试"),
    /**
     * 省份、城市信息填写错误
     */
    FAIL_2026("SC_2026", "省份、城市信息填写错误"),
    /**
     * 省份、城市信息填写错误
     */
    FAIL_2027("SC_2027", "计划周期填写错误"),
    /**
     * 导入失败，请联系管理员
     */
    FAIL_2028("SC_2028", "导入失败，请联系管理员"),
    /**
     * 门店编码必须为直营门店编码
     */
    FAIL_2029("SC_2029", "门店编码必须为直营门店编码"),
    /**
     * 新品铺货计划最多只能导入4种渠道
     */
    FAIL_2030("SC_2030", "新品铺货计划最多只能导入5种渠道"),
    /**
     * 请按模板的渠道名称填写
     */
    FAIL_2031("SC_2031", "渠道编码填写错误，请按模板的渠道填写"),
    /**
     * 商品编码获取品类信息失败
     */
    FAIL_2032("SC_2032", "商品编码获取品类信息失败，编码为："),
    /**
     * 商品编码获取商品单位信息失败
     */
    FAIL_2033("SC_2033", "商品编码获取商品单位信息失败，编码为："),
    /**
     * 最晚到货日期必须小于计划周期
     */
    FAIL_2034("SC_2034", "最晚到货日期必须小于计划周期"),
    /**
     * 导入时间有误
     */
    FAIL_2035("SC_2035", "导入时间有误"),
    /**
     * 省份必填
     */
    FAIL_2036("SC_2036", "省份必填"),
    /**
     * 城市必填
     */
    FAIL_2037("SC_2037", "城市必填"),
    /**
     * 销售计划当前周前两周必填
     */
    FAIL_2038("SC_2038", "销售计划当前周往后两周必填"),
    /**
     * 新开店计划当前周前四周必填
     */
    FAIL_2039("SC_2039", "新开店计划当前周往后四周必填"),
    /**
     * 新品铺货计划当前周前四周必填
     */
    FAIL_2040("SC_2040", "新品铺货计划当前周往后四周必填"),
    /**
     * 必须为整数
     */
    FAIL_2041("SC_2041", "数量必须为整数"),
    /**
     * 城市名称获取城市信息失败
     */
    FAIL_2042("SC_2042", "城市名称获取城市信息失败，城市名称为："),
    /**
     * 省份名称获取省份信息失败
     */
    FAIL_2043("SC_2043", "省份名称获取省份信息失败，省份名称为："),
    /**
     * 修改营销计划取消状态失败
     */
    FAIL_2044("SC_2044", "修改营销计划取消状态失败"),
    /**
     * 导入周期错误
     */
    FAIL_2045("SC_2045", "导入周期错误"),
    /**
     * 导入文件读取失败
     */
    FAIL_2046("SC_2046", "导入文件读取失败"),
    /**
     * 调用库存中心失败
     */
    EXCEPTION_2001("EX_2001", "调用库存中心失败："),
    /**
     * 调用商品中心接口失败
     */
    EXCEPTION_2002("EX_2002", "调用商品中心接口失败："),
    /**
     * 调用品类中心接口失败
     */
    EXCEPTION_2003("EX_2003", "调用品类中心接口失败："),
    /**
     * 决策层接口调用失败
     */
    EXCEPTION_2004("EX_2004", "决策层接口调用失败："),
    /**
     * 基础服务中心接口调用失败
     */
    EXCEPTION_2005("EX_2005", "基础服务中心接口调用失败："),
    /**
     * 基础服务中心接口调用失败
     */
    EXCEPTION_2006("EX_2006", "大数据服务中心接口调用失败："),
    /**
     * 交易中心接口调用失败
     */
    EXCEPTION_2007("EX_2007", "交易中心接口调用失败："),

    /**
     * 营销中心接口调用失败
     */
    EXCEPTION_2008("EX_2008", "营销中心接口调用失败"),
    /**
     * 远程调用组网服务中心失败
     */
    EXCEPTION_2009("EX_2009", "远程调用组网服务中心失败"),
    /**
     * 调用品类中心接口查询数据为空
     */
    FAIL_1905("SC_1905", "调用品类中心接口查询数据为空："),

    /**
     * 所选区域信息与该角色的已有区域信息对不上
     */
    FAIL_1906("SC_1906", "所选区域信息与该角色的所辖区域信息对不上"),
    /**
     * 营销中心导入数据为空
     */
    FAIL_2900("SC_2900", "营销中心同步数据为空"),
    /**
     * 营销中心同步数据为直营渠道或加盟渠道，省份名称不能为空
     */
    FAIL_2901("SC_2901", "营销中心同步数据为直营渠道或加盟渠道，省份名称不能为空"),
    /**
     * 门店编码必须为直营门店编码或加盟门店编码
     */
    FAIL_2902("SC_2902", "门店编码必须为直营门店编码或加盟门店编码"),
    /**
     * 系统中找不到对应的活动编码
     */
    FAIL_2903("SC_2903", "系统中找不到对应的活动编码"),
    /**
     * 删除操作日志失败
     */
    FAIL_2904("SC_2904", "删除操作日志失败"),
    /**
     * 门店编码填写错误
     */
    FAIL_2905("SC_2905", "门店编码填写错误，必须为直营门店编码，错误编码为："),
    /**
     * 门店编码填写错误
     */
    FAIL_2906("SC_2906", "门店编码填写错误，必须为加盟门店编码，错误编码为："),

    /**
     * 此等级没有对应的用户
     */
    FAIL_3000("SC_3000", "此等级没有对应的用户！"),

    /**
     * 没有需要修改的数据或数据不能修改
     */
    FAIL_3100("SC_3100", "请传递需要修改的数据"),

    /**
     * 传递的数据中存在id为空的，请修改
     */
    FAIL_3101("SC_3101", "传递的数据中存在id为空的，请修改"),

    FAIL_3102("SC_3102", "没有需要修改的数据"),
    FAIL_4000("SC_4000", "获取日销售预测量失败"),
    FAIL_4001("SC_4001", "获取周销售预测量失败"),
    FAIL_4002("SC_4002", "获取日安全库存量失败"),
    FAIL_4003("SC_4003", "获取日补货预估结果失败"),
    FAIL_5001("SC_5001", "没有需要处理的异常数据，请刷新页面后重试！"),
    FAIL_5002("SC_5002", "任务重复发起，请刷新页面后重试！"),
    FAIL_5003("SC_5003", "当前时间不能处理异常数据！"),
    FAIL_5004("SC_5004", "数据处理异常"),
    FAIL_5005("SC_5005", "数据库处理异常"),
    FAIL_6005("SC_6005", "该角色无任何区域权限"),
    FAIL_6006("SC_6006", "角色区域权限配置有错误"),
    FAIL_6007("SC_6007", "至少选择一条数据进行更新"),
    FAIL_6008("SC_6008", "无法获取单位比例转换信息"),
    FAIL_6009("SC_6009", "该角色无任何渠道权限"),;
    private String code;
    private String msg;

    ResponseMsg(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return this.code;
    }

    public String getMsg() {
        return this.msg;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Response<Object> buildMsg() {
        return buildMsg(null);
    }

    public Response buildMsg(String code, String msg) {
        return Response.builderFail(code, msg);
    }

    public Response<Object> buildMsg(Object data) {
        if (this == SUCCESS) {
            return Response.builderSuccess(data);
        }
        return Response.builderFail(code, msg);
    }

    public Response buildMsgWithSelf() {
        return Response.builderFail(this.code, this.msg);
    }
}
